Pigsty v1正式发布:开箱即用的PostgreSQL开源发行版
经过了1年多的迭代与打磨,Pigsty今日正式发布 v1.0.0 GA版本。
Pigsty (/ˈpɪɡˌstaɪ/) 是 PostgreSQL In Graphic STYle 的缩写,即 “图形化Postgres”。
官方文档站:http://doc.pigsty.cc
公开Demo:http://demo.pigsty.cc
Pigsty是什么?
Pigsty是一个开箱即用的PostgreSQL数据库发行版,将生产级的集群部署,扩容缩容,主从复制,故障切换,流量代理,连接池,服务发现,访问控制,监控系统,告警系统,日志采集解决方案集成封装为发行版。一次性解决在生产环境与各类场景下使用 世界上最先进的开源关系型数据库 —— PostgreSQL 时会遇到的问题。
Pigsty是开箱即用的PostgreSQL发行版
Pigsty是全面专业的PostgreSQL监控系统
Pigsty是简单易用的PostgreSQL高可用部署方案
Pigsty是便捷全能的本地沙箱与数据分析可视化环境
Pigsty是自由免费的开源软件,基于Apache 2.0协议开源
What & Where & Who
发行版
Pigsty是“开箱即用的PostgreSQL发行版”。
所谓发行版,指的是指的是由数据库内核及其一组软件包组成的数据库整体解决方案。例如,Linux是一个操作系统内核,而RedHat,Debian,SUSE则是基于此内核的操作系统发行版。PostgreSQL是一个数据库内核,而Pigsty,BigSQL,Percona,各种云RDS则是基于此内核的数据库发行版。
作为一个数据库发行版,Pigsty区别于其他发行版的几个核心特性为:
全面专业的监控系统
简单易用的部署方案
稳定可靠的高可用架构
便捷全能的沙箱环境
免费友好的开源协议
开箱即用
所谓 开箱即用(Battery-Included)是指这样一种效果:用户现在有一台刚装完系统的虚拟机,只需一行命令,10分钟内即可完成基础设施、数据库,监控系统,管控平台的安装,进入可用状态。
Pigsty将部署与监控这两件事情做到极致,让大规模数据库集群的部署实施,管理运维,设计使用这样门槛颇高的工作,成为普通研发人员即可轻松搞定的事情。
面向专业用户,Pigsty提供最全面专业的监控系统;面向大众用户,Pigsty提供最简单易用的部署方案。此外,针对数据研发人员,Pigsty还集成了JupyterLab, Echarts等实用工具,可以作为数据研发与可视化的集成开发环境。
监控系统
Pigsty带有一个针对大规模数据库集群管理而设计的专业级PostgreSQL监控系统。包括约1200类指标,20+监控面板,上千个监控仪表盘,覆盖了从全局大盘到单个对象的详细信息。与同类产品相比在指标的覆盖率与监控面板丰富程度上一骑绝尘,为专业用户提供无可替代的价值。
一个典型的Pigsty部署可以管理几百套数据库集群,采集上千类指标,管理百万级时间序列,并将其精心组织为上千个监控仪表盘,交织于几十个监控面板中实时呈现。从全局大盘概览,到单个对象(表,查询,索引,函数)的细节指标,如同实时的核磁共振/CT机一般,将整个数据库剖析的清清楚楚,明明白白。
图: 监控面板什锦
图: 单查询监控
图: 单表监控
图: 单实例主题监控面板
Pigsty监控系统由目前由三个紧密联系的核心应用共同组成:
收集并呈现监控 指标数据的 pgsql
直接浏览数据库系统 目录 的 pgcat
实时查询搜索分析数据库日志的 pglog
Pigsty监控系统基于业内最佳实践,采用Prometheus、Grafana作为监控基础设施。开源开放,定制便利,可复用,可移植,没有厂商锁定。可与已有PostgreSQL数据库实例集成,亦可用于其他数据库或应用的监控与管理(例如Redis)。
部署方案
数据库是管理数据的软件,管控系统是管理数据库的软件。
Pigsty内置了一套以Ansible为核心的数据库管控方案,并基于此封装了命令行工具与图形界面。它集成了数据库管理中的核心功能:包括数据库集群的创建,销毁,扩缩容;用户、数据库、服务的创建等。
Pigsty采纳 Infra as Code 的设计哲学,使用类似 Kubernetes 的声明式配置,通过大量可选的配置选项对数据库与运行环境进行描述,并通过幂等的预置剧本自动创建所需的数据库集群,提供私有云般的使用体验。
用户只需要通过配置文件或图形界面描述“自己想要什么样的数据库”,而无需关心Pigsty如何去创建或修改它。Pigsty会根据用户的配置文件清单,在几分钟内从裸机节点上创造出所需的数据库集群。
对于不习惯配置文件与Ansible剧本的用户,Pigsty亦提供了可选的CMDB模式、与CLI/GUI工具封装常用操作。
对于专业用户,Pigsty提供了160+可配置参数,允许对数据集群,基础设施运行时的方方面面进行配置与定制。而新手亦可在完全不修改配置的前提下,创建出相当可靠的数据库集群。
高可用集群
Pigsty创建的数据库集群是分布式、高可用的数据库集群。从效果上讲,只要集群中有任意实例存活,集群就可以对外提供完整的读写服务与只读服务。
数据库集群中的每个数据库实例在使用上都是幂等的,任意实例都可以通过内建负载均衡组件提供完整的读写服务。数据库集群可以自动进行故障检测与主从切换,普通故障能在几秒到几十秒内自愈,且期间只读流量不受影响。
Pigsty的高可用架构久经生产环境考验,以极小的复杂度实现了完整的高可用方案,让传统主从架构的数据库用出分布式数据库的感觉。
图: 默认接入方式架构(DNS+L2VIP+HAProxy, 共7种)
沙箱环境
使用PostgreSQL不仅仅是企业,还有许许多多多个人用户:用于软件的开发、测试、实验,演示;或者是数据的清洗,分析,可视化,存储。然而如何搭建环境往往成为用户面前的第一道拦路虎。
Pigsty沙箱旨在解决这一问题,Pigsty可以一键在您的笔记本或PC机上中拉起完整的生产级PostgreSQL服务(通过Vagrant调用Virtualbox自动创建所需的虚拟机)。默认沙箱为单节点(2核4G),带有各类实用工具,可服务于各种用途。此外,还有四节点版本的完整版沙箱,可用于搭建生产仿真环境,充分探索Pigsty高可用架构与监控系统的能力。
图: 四节点沙箱环境架构示意图
数据分析
Pigsty提供了 PostgreSQL 作为后端数据库,JupyterLab Python集成开发环境,Grafana前后端运行时,以及Grafana Echarts Panel用于进行高级可视化。这些工具构成了数据处理、分析、开发数据应用的一整套完整工具组合。
您可以基于Pigsty环境进行数据分析,快速产出数据应用POC Demo,并通过标准化的方式进行打包,分发,部署,发布。Pigsty项目中自带了两个数据应用样例:
疫情数据可视化应用 covid
图: COVID应用首页,点击查看单个国家详情与时间线地图
全球地表气象站历史数据查询应用 isd
图: ISD应用首页,点击查看单个气象站详情与历史气象要素数据
路线图
开源
Pigsty基于Apache 2.0协议开源,可以免费用于商业目的,但改装与衍生需遵守Apache License 2.0 的显著声明条款。
Pigsty的宗旨是:用好数据库,用好数据库。
让中小企业用户真正拥有”自主可控“的选择,
让所有人都能轻松享受PostgreSQL的乐趣。